package com.ptu.spzx.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.ptu.spzx.domain.Delete.DeleteIds;
import com.ptu.spzx.domain.Exam.Exam;
import com.ptu.spzx.domain.Exam.dto.ExamDTO;
import com.ptu.spzx.domain.Exam.vo.ExamStuVo;
import com.ptu.spzx.domain.Exam.vo.ExamVO;
import com.ptu.spzx.domain.Exam.vo.StuExamScoreVo;
import com.ptu.spzx.model.entity.user.UserInfo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author YT
 * @since 2024-01-28
 */
public interface IExamService extends IService<Exam> {
    void addExam(ExamDTO examDTO);

    void delExamById(DeleteIds deleteIds);

    void updateExam(ExamDTO examDTO);

    ExamVO getExamDetailById(Long id);

    PageInfo<Exam> getExamByCourseIdSemester(Integer courseId, String semester,Integer pageNum,Integer pageSize);

    List getStuExam(String stuId);

    ExamStuVo getStuAnalyse(Long examId, List<Long> classIds);

    StuExamScoreVo getStuScoreAnalyse(Long examId, Long classId);

    PageInfo<UserInfo> getExamStuNum(Long examId, Integer pageNum, Integer pageSize);
}